package com.agile.leetcode.order.quartz;

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

/**
 * 优点:简单易行，支持集群操作
 * <p>
 * 缺点:(1)对服务器内存消耗大
 * <p>
 * (2)存在延迟，比如你每隔3分钟扫描一次，那最坏的延迟时间就是3分钟
 * <p>
 * (3)假设你的订单有几千万条，每隔几分钟这样扫描一次，数据库损耗极大
 *
 * @Author:ChenZhangKun
 * @Date: 2021/9/15 10:02
 */
public class Client {
    public static void main(String[] args) throws SchedulerException {
        // 创建jobDetail
        JobDetail jobDetail = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").build();
        Trigger trigger = TriggerBuilder
                .newTrigger()
                .withIdentity("trigger1", "group2")
                .withSchedule(
                        SimpleScheduleBuilder.simpleSchedule()
                                // 3s一次
                                .withIntervalInSeconds(3)
                                // 永远重复
                                .repeatForever()
                ).build();
        Scheduler scheduler = new StdSchedulerFactory().getScheduler();
        // 将任务及其触发器放入调度器
        scheduler.scheduleJob(jobDetail, trigger);
        // 调度器开始调度任务
        scheduler.start();
    }
}
